#pragma once

#include "XamlNameParser.h"
#include "XamlPropertyName.h"

class XamlPropertyNameParser :
	public XamlNameParser
{

public: 
	XamlPropertyNameParser(const xshared_ptr<CXString const > & input);
	HRESULT ParseXamlPropertyName(xshared_ptr<XamlPropertyName> & outPropertyName);
	HRESULT ParseXamlPropertyName(const xshared_ptr<CXString> & inPrefix, xshared_ptr<XamlPropertyName> & outPropertyName);
private: 
	XBOOL ParseOwnerProperty(xshared_ptr<CXString> &, xshared_ptr<CXString> &);
	XBOOL ParseNoOwnerProperty(xshared_ptr<CXString> &, xshared_ptr<CXString> &);
	XBOOL ParseProperty(xshared_ptr<CXString> & outssOwner, xshared_ptr<CXString> & outssProperty);
};
